#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<string.h>

int main()
{
    close(1);
    int n=printf("stdin->fd:%d\n",fileno(stdin));
    printf("stdout->fd:%d\n",fileno(stdout));
    printf("stderr->fd:%d\n",fileno(stderr));

    fprintf(stderr,"printf ret:%d\n",n);
    return 0;
}

//int main()
//{
//    char buf[1024];
//    ssize_t s=read(0,buf,sizeof(buf));
//    if(s>0)
//    {
//        buf[s]=0;
//        write(1,buf,strlen(buf));
//        write(2,buf,strlen(buf));
//    }
//    return 0;
//}
//
//int main()
//{
//    umask(0);
//    int fd=open("log.txt",O_RDWR|O_CREAT,0644);
//    if(fd<0){
//        perror("open");
//        return 1;
//    }
//    const char*msg="hellow linux\n";
//    write(fd,msg,strlen(msg));
//
//    //将文件指针移回文件开头
//    lseek(fd,0,SEEK_SET);
//    char buf[1024];
//    while(1)
//    {
//        ssize_t s=read(fd,buf,strlen(msg));
//         // 注意：read 不会自动添加 '\0'，需要手动确保字符串结束
//        if(s>0) buf[s]='\0',printf("%s",buf);
//        else break;
//    }
//
//    close(fd);
//    return 0;
//}
//
//
//
//
//#define ONE (1<<0) //1
//#define TWO (1<<1) //2
//#define THREE (1<<2) //4
//#define FOUR (1<<3)  //8
//
//void show(int flags)
//{
//    if(flags&ONE) printf("hellow function1\n");
//    if(flags&TWO) printf("hellow function2\n");
//    if(flags&THREE) printf("hellow function3\n");
//    if(flags&FOUR) printf("hellow function4\n");
//}
//
//int main()
//{
//    printf("--------------------\n");
//    show(ONE);
//    printf("--------------------\n");
//    show(TWO);
//    printf("--------------------\n");
//    show(ONE|TWO);
//    printf("--------------------\n");
//    show(ONE|TWO|THREE);
//    printf("--------------------\n");
//    show(THREE|FOUR);
//    printf("--------------------\n");
//}
